<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_vencimientos.php");
require_once("../Datos/Tablas/Tbl_ec_giras.php");
require_once("../Datos/Selectores/Sel_Ventas_No_Guion.php");

class Sel_Vencimientos_Gira extends Selector{

	function Sel_Vencimientos_Gira(&$conexion){
		$this->Selector($conexion);

		$this->Nombre = "Vencimientos_Gira";
		$this->estTablaBase(new Tbl_ec_vencimientos($conexion, ''));
		
		$relacionada = new SubConsulta(new Sel_Ventas($conexion), 'Ventas');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('venc_venta'), $this->obtCampoRelacionado('Ventas', 'ven_id'), '=');
		
		$relacionada = new Tbl_ec_giras($conexion, '');
		$this->agregarTablaRelacionada($relacionada, 'LEFT JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('venc_gira'), $this->obtCampoRelacionado('ec_giras', 'gi_id'), '=');
					
		$campo = $this->tablaBase->obtCampo('venc_id');
		$campo->estAlias("Vencimiento");
		$this->agregarCampoVisible($campo);		
		
		$campo = $this->tablaBase->obtCampo('venc_gira');
		$campo->estAlias("Codigo");
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);		
		
		$campo = $this->obtCampoRelacionado('ec_giras', 'gi_fecha');
		$campo->estAlias('Fecha Gira');
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);	
		
		$campo = $this->obtCampoRelacionado('Ventas', 'ven_id');
		$campo->estEsBase(1);
		$campo->estAlias('Venta');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Localidad');
		$campo->estEsBase(1);
		$campo->estAlias('Localidad');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Cliente');
		$campo->estEsBase(1);
		$campo->estAlias('Cliente');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Fecha_Venta');
		$campo->estAlias('Fecha Venta');
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Articulo');
		$campo->estEsBase(1);
		$campo->estAlias('Articulo');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Monto');
		$campo->estEsBase(1);
		$campo->estAlias('Monto');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Cuotas');
		$campo->estEsBase(1);
		$campo->estAlias('Cuotas');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->tablaBase;
		$funcion = new Funcion('Valor', '', $tabla);
		$funcion->agregarExpresion('FORMAT(Ventas.Monto / Ventas.Cuotas, 2)');
		$funcion->estEsReadOnly(1);
		$funcion->estEsBase(1);
		$this->agregarCampoVisible($funcion);
		
		$campo = $this->tablaBase->obtCampo('venc_fechapago');
		$campo->estAlias("Fecha Pago");
		$this->agregarCampoVisible($campo);	
		
		$campo = $this->tablaBase->obtCampo('venc_fecha');
		$campo->estAlias("Fecha Vencimiento");
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);		
		
		$campo = $this->obtCampoRelacionado('Ventas', 'id_Cobrador');
		$campo->estEsBase(1);
		$campo->estAlias('Cobrador');
		$campo->estEsReadOnly(1);
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'cli_localidad');
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$this->estCondicion("ec_vencimientos.venc_fechapago IS NOT NULL");
		
		$this->txtConsulta = $this->GenerarConsulta();
 } 
 
 function Ejecutar($post){
 	$arr_nombres = array_keys($post);
	$this->Conexion->IniciarTransaccion();
 	if($post['opGira'] == 1){
		foreach($arr_nombres as $nombre){
			if(substr($nombre, 0, 3) == "chk"){
				$consulta[0] = "UPDATE ec_vencimientos SET venc_gira = ".$post[1]." WHERE venc_id = ".substr($nombre, 3, strlen($nombre)-3);
				$this->Conexion->Ejecutar($consulta);
			}
		}
	}else{
		foreach($arr_nombres as $nombre){
			if(substr($nombre, 0, 3) == "chk"){
				$consulta[0] = "UPDATE ec_vencimientos SET venc_gira = NULL WHERE venc_id = ".substr($nombre, 3, strlen($nombre)-3);
				$this->Conexion->Ejecutar($consulta);
			}
		}
	}
	$this->Conexion->ConfirmarTransaccion();
 }
 
 function estCondicionHijo($columnas){
 	$this->txtCondicion= "(ec_vencimientos.venc_gira IS NULL OR ec_vencimientos.venc_gira = '".$columnas['0']['Codigo']."')".
		" AND (".
			"Ventas.id_Cobrador = '".$columnas['0']['gi_cobrador'].
			"' AND Ventas.cli_localidad = '".$columnas['0']['gi_localidad'].
			"' AND ec_vencimientos.venc_fecha <= '".$columnas['0']['Fecha'].
		"')";
	$this->txtConsulta = $this->GenerarConsulta();
 }
}
?>